package com.wxzz.elearing.livetelecast.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.wxzz.elearing.livetelecast.vo.ActivityFileVo;
import com.wxzz.elearning.common.bean.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * <p>
 * 活动
 * </p>
 *
 * @author
 * @since 2021-04-23
 */
@Data
@ApiModel(value = "Activity对象", description = "活动")
public class Activity extends BaseEntity implements Serializable {

    @ApiModelProperty(value = "直播id(不关联为0)")
    private Long platformLivetelecastId;

    @ApiModelProperty(value = "活动名称")
    private String activityName;

    @ApiModelProperty(value = "活动封面")
    private String activityCover;

    @ApiModelProperty(value = "活动地点")
    private String activityPlace;

    @ApiModelProperty(value = "活动详细地址")
    private String activityPlaceDetail;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "活动开始时间")
    private LocalDateTime activityStartTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "活动结束时间")
    private LocalDateTime activityEndTime;

    @ApiModelProperty(value = "活动标题")
    private String activityTitle;

    @ApiModelProperty(value = "活动详情")
    private String activityDetail;

    @ApiModelProperty(value = "是否为线下 0-否 1-是")
    private Integer isOffline;

    @ApiModelProperty(value = "是否为线上 0-否 1-是")
    private Integer isOnline;

    @ApiModelProperty(value = "线下价格")
    private BigDecimal offlinePrice;

    @ApiModelProperty(value = "线上价格")
    private BigDecimal onlinePrice;

    @ApiModelProperty(value = "是否提醒 0-否 1-是")
    private Integer activityRemind;

    @ApiModelProperty(value = "是否短信 0-否 1-是")
    private Integer isMms;

    @ApiModelProperty(value = "是否电话 0-否 1-是")
    private Integer isPhone;

    @ApiModelProperty(value = "是否公众号通知 0-否 1-是")
    private Integer isPublic;

    @ApiModelProperty(value = "活动状态 0-未开始 1-进行中 2-已结束")
    private Integer activityStatus;

    @ApiModelProperty(value = "直播分类id")
    private Long activityCategoryId;

    @ApiModelProperty(value = "活动课件 多个用,分隔")
    private String activityFile;

    @ApiModelProperty(value = "课件名称 多个用,分隔 与课件url对应")
    private String activityFileName;

    @ApiModelProperty(value = "文件大小 多个用,分隔")
    private String activityFileSize;

    @ApiModelProperty(value = "活动签到二维码")
    private String activityUrl;

    @ApiModelProperty(value = "直播开始前X分钟开始提醒")
    private Integer smsRemindMinute;

    @TableField(exist = false)
    @ApiModelProperty(value = "是否收藏 0-否 1-是 ")
    private Integer isCollect = 0;

    @TableField(exist = false)
    @ApiModelProperty(value = "文件对象")
    private List<ActivityFileVo> activityFileVoList;

    @TableField(exist = false)
    @ApiModelProperty(value = "线下支付状态 0-待支付 1-已支付")
    private Integer offlinePayStatus;

    @TableField(exist = false)
    @ApiModelProperty(value = "线上支付状态 0-待支付 1-已支付")
    private Integer onlinePayStatus;

    @TableField(exist = false)
    @ApiModelProperty(value = "报名人数")
    private Integer joinNum = 0;

    @TableField(exist = false)
    @ApiModelProperty(value = "线下报名人数")
    private Integer offJoinNum = 0;

    @TableField(exist = false)
    @ApiModelProperty(value = "线上报名人数")
    private Integer onJoinNum = 0;

    @TableField(exist = false)
    @ApiModelProperty(value = "直播名称")
    private String livetelecastName;

}
